namespace DotNetNuke.Security.Authentication
{
    using DotNetNuke.Security.Roles;
    using System;
    using System.Collections;

    public class GroupInfo : RoleInfo, IAuthenticationObjectBase
    {
        private ArrayList mAuthenticationMember = new ArrayList();
        private ArrayList mDNNMember = new ArrayList();
        private bool mDNNPopulated = false;
        private string mGUID = "";
        private bool mIsPopulated = false;
        private string mLocation = "";
        private ArrayList mMembers = new ArrayList();
        private string mProcessLog = "";

        /// -------------------------------------------------------------------
        /// <summary>
        /// </summary>
        /// <remarks>
        /// </remarks>
        /// <history>
        /// [tamttt]	08/01/2004	Created
        /// </history>
        /// -------------------------------------------------------------------
        public ArrayList AuthenticationMember
        {
            get
            {
                return this.mAuthenticationMember;
            }
        }

        //public 
        string DotNetNuke.Security.Authentication.IAuthenticationObjectBase.GUID
        {
            get
            {
                return this.mGUID;
            }
            set
            {
                this.mGUID = value;
            }
        }
        //public
         string DotNetNuke.Security.Authentication.IAuthenticationObjectBase.Location
        {
            get
            {
                return this.mLocation;
            }
            set
            {
                this.mLocation = value;
            }
        }
         //public
         string DotNetNuke.Security.Authentication.IAuthenticationObjectBase.Name
        {
            get
            {
                return this.RoleName;
            }
        }
         //public
         DotNetNuke.Security.Authentication.ObjectClass DotNetNuke.Security.Authentication.IAuthenticationObjectBase.ObjectClass
        {
            get
            {
                return DotNetNuke.Security.Authentication.ObjectClass.group;
            }
        }

        /// -------------------------------------------------------------------
        /// <summary>
        /// </summary>
        /// <remarks>
        /// </remarks>
        /// <history>
        /// [tamttt]	08/01/2004	Created
        /// </history>
        /// -------------------------------------------------------------------
        public string GUID
        {
            get
            {
                return this.mGUID;
            }
            set
            {
                this.mGUID = value;
            }
        }

        /// -------------------------------------------------------------------
        /// <summary>
        /// </summary>
        /// <remarks>
        /// </remarks>
        /// <history>
        /// [tamttt]	08/01/2004	Created
        /// </history>
        /// -------------------------------------------------------------------
        public bool IsPopulated
        {
            get
            {
                return this.mIsPopulated;
            }
            set
            {
                this.mIsPopulated = value;
            }
        }

        /// -------------------------------------------------------------------
        /// <summary>
        /// </summary>
        /// <remarks>
        /// </remarks>
        /// <history>
        /// [tamttt]	08/01/2004	Created
        /// </history>
        /// -------------------------------------------------------------------
        public string Location
        {
            get
            {
                return this.mLocation;
            }
            set
            {
                this.mLocation = value;
            }
        }

        /// -------------------------------------------------------------------
        /// <summary>
        /// </summary>
        /// <remarks>
        /// </remarks>
        /// <history>
        /// [tamttt]	08/01/2004	Created
        /// </history>
        /// -------------------------------------------------------------------
        public string Name
        {
            get
            {
                return this.RoleName;
            }
        }

        /// -------------------------------------------------------------------
        /// <summary>
        /// </summary>
        /// <remarks>
        /// </remarks>
        /// <history>
        /// [tamttt]	08/01/2004	Created
        /// </history>
        /// -------------------------------------------------------------------
        public DotNetNuke.Security.Authentication.ObjectClass ObjectClass
        {
            get
            {
                return DotNetNuke.Security.Authentication.ObjectClass.group;
            }
        }
    }
}

